Real time map rendering with data clustering and expansion and overlay

ABSTRACT

Systems and methods are provided for the organization, management, and graphical display of multiple logically related entities. In some embodiments, the systems and methods provide the real-time display of status and location information for a fleet of tracked vehicles. In some embodiments, the systems and methods permit the automatic clustering of assets based on a user&#39;s view of an underlying map. In some embodiments, the assets are vehicles that are a part of a managed fleet. In some embodiments, the assets are logically arranged into clusters of like assets. In some embodiments, the clusters provide graphical indications of status or class information of their underlying assets.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of International PatentApplication No. PCT/US2010/45630, filed Aug. 16, 2010 and entitled “RealTime Map Rendering with Data Clustering and Expansion and Overlay”,which claims priority to U.S. Provisional Patent Application Ser. No.61/274,221, filed Aug. 14, 2009 and entitled “Real Time Map Renderingwith Data Clustering and Expansion and Overlay,” both of whichapplications are incorporated herein by reference to the extent they arenot inconsistent with the disclosure herein.

BACKGROUND

1. Field

This invention generally relates to systems and methods for organizing,managing, and graphically displaying multiple logically related entitiesand, more specifically, in one embodiment, to systems and methods forthe real time organization and display of clusters of tracked vehiclesin connection with a geographical map.

2. Description of Related Art

As the use of electronic maps to display information has increased inpopularity, so has the volume and complexity of information to bedisplayed. Accordingly, it has become more and more difficult to take inthe wide range of data that may be overlaid and viewed on maps withoutthe viewer becoming confused or overwhelmed by the display.

This problem is acutely expressed in the field of map-based orlocation-based services and tools, where the ever increasingly detailednature of the information to be displayed, together with the potentiallylimitless number of sources from which data is gathered, combine to makeit extremely challenging to display such information on a map in alogical manner that is accessible and useful to viewers. For instance,the management of large numbers of people and equipment involvesobtaining timely information about location, status, and potential alarmconditions. Management preferably wants to be able to observe when andwhere scheduled events have occurred and how schedules and status havechanged since the previous observations, but doing so in prior systemswas difficult if not impossible with so much data available. Forexample, in the field of fleet management, it is desirable to know thestatus of vehicles in a fleet, where the vehicles currently are, whetherthe vehicles are operating properly, etc. For fleets with hundreds orthousands of vehicles, such information quickly became overwhelming whenaccessed through a map-based interface.

Developers have attempted to facilitate the ease of use of suchmap-based displays by allowing viewers to zoom in and out of the maps atissue; however, this is often an ineffective solution since the problemof viewing an overwhelming amount of data is only amplified as theviewer zooms out to get a more general picture of the data. As a result,in order to make sense of the displayed data, the viewer's only choiceis to zoom in so far on the map that important information is no longerdisplayed onscreen. Other systems simply operate too slowly to meet thedemands of full time asset management.

SUMMARY

The present embodiments overcome these and other deficiencies of theprior art by providing systems and methods for smart zooming thatcluster geographically or spatially related information together tocreate useful overlays of data to facilitate the management of suchinformation. In some embodiments, the information pertains to vehiclesbeing tracked. In some embodiments, the systems and methods provide thereal-time display of status and location information for a fleet oftracked vehicles. In some embodiments, the systems and methods permitthe automatic clustering of assets based on a user's view of anunderlying map, which change dynamically as a user zooms in or out of amap. In some embodiments, the assets are vehicles that are a part of amanaged fleet. In some embodiments, the assets are logically arrangedinto clusters of like assets. In some embodiments, the clusters providegraphical indications of status or class information of their underlyingassets.

In some embodiments, a method for displaying information pertaining to aplurality of geographically related assets is provided. The methodincludes receiving information pertaining to a plurality of assets;selecting the assets from the plurality of assets that aregeographically related; forming a cluster comprising the selectedassets; and providing a graphical user interface comprising a geographicmap and the cluster. In some embodiments, the assets, are geographicallyrelated if the physical location of the assets are within a geographicarea defined by a virtual bounding area. In some embodiments, thecluster is overlayed on the geographic map in the geographic areadefined by the bounding area. In some embodiments, the cluster displayson the graphical user interface at least one item of informationpertaining to the selected assets. In some embodiments, the assets arevehicles. The information pertaining to the plurality of assets is, insome embodiments, updated in real time. In some embodiments, at leastone item of information is a chart displaying status information for theselected assets. In some embodiments, at least one item of informationis a chart displaying the class information for the selected assets. Insome embodiments, at least one item of information is a numericalindication of the number of selected assets. In some embodiments, thegraphical user interface displays the virtual bounding area. In someembodiments, the method also includes adding the cluster to a newcluster if a user of the graphical user interface zooms out from thegeographic map. In some embodiments, the method also includes splittingthe cluster into a plurality of clusters if a user of the graphical userinterface zooms in on the geographic map.

In some embodiments, a method for splitting a cluster of assets isprovided, where each asset has pixel coordinates based on its geospatiallocation and in reference to a virtual area representing an end user'sdisplay. The method, in some embodiments, comprises identifying thecoordinates of each asset; dividing the virtual area into slots;grouping the assets into the slots based on each assets' pixelcoordinates; and generating new clusters, wherein each new clustercomprises at least one asset and comprises every asset which was groupedinto the same slot.

In some embodiments, a method for clustering assets is provided. Themethod, in some embodiments, includes generating pixel coordinates foreach asset based on the asset's geospatial location and in reference toa virtual area representing an end user's display; determining an iconshape with specific pixel dimensions for use in connection with eachasset; querying a data structure with the icon shape for each asset;adding an asset as a new cluster in the data structure if the areadefined by the pixel dimensions of the asset's icon shape, when centeredover the asset's pixel coordinates, does not overlap with the areacovered by another cluster in the data structure; and adding an asset toan existing cluster in the data structure if the area defined by thepixel dimensions of the asset's icon shape, when centered over theasset's pixel coordinates, overlaps with the area covered by theexisting cluster.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present embodiments, theobjects and advantages thereof, reference is now made to the followingdescriptions taken in connection with the accompanying drawings inwhich:

FIG. 1 depicts a cluster of assets, according to an embodiment.

FIG. 2 depicts a geographical map comprising a plurality of clusters,according to an embodiment.

FIG. 3 depicts additional informational features available to the userof the system, according to one embodiment.

FIG. 4 depicts informational features available to the user of thesystem when a cluster contains a large number of assets, according to anembodiment.

FIG. 5 illustrates a scrollable list of a cluster's assets, according toan embodiment.

FIG. 6 illustrates the function of clusters with reference to a specificgeographical location, according to an embodiment.

FIG. 7 illustrates is a flow chart describing the creation of a cluster,according to an embodiment.

FIG. 8 depicts a graphical example of the steps carried out in FIG. 7,according to an embodiment.

FIG. 9 depicts a process for splitting a cluster, according to anembodiment.

FIG. 10 illustrates items being moved from odd slots to even slotsduring the splitting process, according to an embodiment.

FIG. 11 depicts a sample cluster with reference to a display screen thatis to be split, according to an embodiment.

FIG. 12 depicts the location of a cluster's items with reference to adisplay screen, according to an embodiment.

FIG. 13 illustrates a cluster being split, according to an embodiment.

FIG. 14 shows the creation of new clusters from a single prior cluster,according to an embodiment.

FIG. 15 illustrates three new clusters after completion of the splittingprocess, according to an embodiment.

FIG. 16 depicts an overall system diagram of components and devices usedin connection with embodiments.

Corresponding reference characters indicate corresponding componentsthroughout the several views of the drawings. Skilled artisans willappreciate that elements in the figures are illustrated for simplicityand clarity and have not necessarily been drawn to scale. For example,the dimensions, sizing, and/or relative placement of some of theelements in the figures may be exaggerated relative to other elements tohelp to improve understanding of various embodiments of the presentinvention. Also, common but well-understood understood elements that areuseful or necessary in a commercially feasible embodiment are often notdepicted in order to facilitate a less obstructed view of these variousembodiments of the present invention. It will also be understood thatthe terms and expressions used herein have the ordinary meaning as isusually accorded to such terms and expressions by those skilled in thecorresponding respective areas of inquiry and study except where otherspecific meanings have otherwise been set forth herein.

DETAILED DESCRIPTION OF THE DRAWINGS

Further features and advantages of the present embodiments, as well asthe structure and operation of the various embodiments, are described indetail below with reference to the accompanying FIGS. 1-16. Theembodiments are described in the context of a system for displayingclusters of tracked vehicles on a map. Nonetheless, one of ordinaryskill in the art readily recognizes that these embodiments areapplicable in numerous fields and contexts which require the display ofmultiple disparate pieces of information in a useful manner, andparticularly with respect information with geographical or specialcomponents, such as real estate information, package or deliveryinformation, communications information, etc.

Referring now to FIG. 1, depicted is a cluster 100. The cluster 100provides information about underlying assets in a specific geographicalor spatial location, defined by a bounding area 102. The cluster 100, insome embodiments, comprises a numerical value 104 and an inner chart106. In some embodiments, the cluster 100 comprises an outer chart 108,or additional charts or graphical information (not depicted). Forexample, if the assets are vehicles, then the numerical value 104displays the number of vehicles within the cluster 100, and the charts106 and 108 provide detailed class and status information about thosevehicles. Inner chart 106, for example, contains color coded classinformation for each asset in the cluster 100. For example, in thecontext of vehicles, the vehicles may be classified as semi-trucks,pickups, mobile cranes, cars, or other type of vehicle, each with aunique color. Inner chart 106 will therefore display a color coded piechart representing the percentage of vehicles in the cluster 100 thatmake up each class, Outer chart 108, for example, depicts color codedstatus information for each asset in the cluster 100. For example, inthe context of vehicles, the vehicles may be moving, stopped, idle, outof contact, or have another status depending upon the specificapplication. Outer chart 108 will therefore display a color coded piechart representing the percentage of vehicles in the cluster 100 witheach given status. The specific class and status information to bedepicted by the charts 106 and 108, as well as the colors assigned tosuch information, are configurable by the user of the system using knownmethods. Furthermore, the size, shape, and configuration of the cluster100 is also modifiable. For instance, in some embodiments, clusters aregiven different shapes to indicate that the clusters pertain todifferent types of assets or different types of information. Forexample, a first cluster may be round, indicating it pertains tovehicles, and a second cluster may be square, indicating it pertains tojobs to be performed during a day. As the jobs are completed, thecolored status information for the cluster changes, reflecting theprogress made on the job. In some embodiments, the corners of a squareor other angular cluster changes colors. For ease of understanding only,the present application generally depicts clusters herein as circles orsquares, with circular inner and outer charts.

The information in the cluster 100 is, in some embodiments, updated inreal time. For example, as a vehicle leaves or enters the bounding area102, the numerical value 104 and charts 106 and 108 are updatedaccordingly. If the status of an asset changes, the outer chart 108likewise is updated. Such real-time updates are configurable by the userof the system and may be dependant on the communication systems of theassets. For instance, a user of the system may only desire updates onceevery five minutes. Alternatively, an asset may be programmed to onlyprovide its location and other status information once every thirtyseconds, or only when its status or location changes. Those of ordinaryskill in the art will therefore recognize the information displayed bythe cluster 100 may, in some embodiments, be delayed based on thesecontingencies or preferences. Alternatively, the updating of informationcan be done, for example, when the map is resized.

In some embodiments, not all assets in a specific bounding area 102 areincluded in the cluster 100. For instance, the cluster 100 may onlycomprise assets of a certain type, such as only vehicles. In otherembodiments, the cluster 100 may only comprise assets owned by aspecific entity, such as a single rental car company. The specificassets that are included in a cluster 100 may be selected based onnumerous attributes, such as the asset's status, class, physicalattributes, type, ownership information, etc. In some embodiments (notshown), the bounding area 102 comprises more than one cluster. Each ofclusters may comprise assets that, but for the preferences of the userspecified to the system, would be included in the same cluster, orassets that, due to different attributes, belong in different clusters.For the sake of clarity, the following discussion only discusses asingle cluster 100 being within a single bounding area 102. The boundingarea 102, as shown, is a square or rectangle, but other shapes, such aspolygons, circles, triangles, or other regular or irregular shapes orany combination thereof, are used in other embodiments. Furthermore, insome embodiments, the bounding area 102 may have different colors orlevels of opacity. By altering the alpha channel value (the opacity)and/or the color of the bounding area 102, additional information can bedisplayed pertaining to each bounding area 102 displayed on a map, suchas which bounding area 102 contains more assets.

Referring now to FIG. 2, depicted is a geographical map 200 comprising aplurality of clusters 100 a-n, according to an embodiment. As depicted,the map 200 displays the entire continental United States. Because ofthe high-level of the map 200, each cluster 100 and its correspondingbounding area 102 a-n covers a large area of the United States, andtherefore includes a relatively large number of assets. For instance,cluster 100 a, whose bounding box 102 a encompasses Los Angeles,contains over four-thousand, five-hundred assets. In other embodiments,however, a large area can encompasses only a small number of assets.

Referring now to FIG. 3, depicted are additional informational featuresavailable to the user of the system, according to one embodiment. Asdepicted, when a user selects a cluster 100, such as when a user pointshis or her mouse over the cluster 100, clicks on the cluster 100, uses atouch screen to select the cluster 100 or otherwise selects or interactswith the cluster 100, the system provides the user with certaininformation pertaining to the assets in the cluster 100. For instance,depicted is a pop-up box 300 with detailed asset information for eachasset in the cluster 100. The pop-up box 300 displays, for example, thename, status, and class of each asset in the cluster 100, and providesthe option for the user to look at the history for each asset byclicking the “Today” or “Yesterday” links. In some embodiments, scaledicons representative of the assets are depicted on the map to providevisual identification to the user where the assets are. In someembodiments, the user can also click on each asset in the pop-up box 300to be directed to the specific location of the asset on the map. Theembodiment discussed with reference to FIG. 3 is useful for clusters 100with a few assets, such as, for example, four or fewer assets, but mayprovide too much detailed information when a cluster has a many assets.

Referring now to FIG. 4, depicted are additional informational featuresavailable to the user of the system when a cluster 100 contains a largenumber of assets, according to an embodiment. As depicted, when a userselects a cluster 100, the system provides the user with pop-up box 400displaying certain high level information pertaining to the assets inthe cluster 100, such as general status and category information aboutthe assets. In some embodiments, the cluster 100 further displays a “+”sign or similar notation 402, signifying even more informationpertaining to the assets in the cluster 100 is available. Referring nowto FIG. 5, when the user clicks the “+” sign 402, in one embodiment, ascrollable list 502 of the cluster's assets is displayed to the user inthe pop-up box 400. The user can select an asset from the scrollablelist 502, the detailed information of which is thereafter displayedpop-up box 400 in a similar manner to that depicted in FIG. 3. In thismanner, detailed information pertaining to each asset in the cluster 100is available to the user, even when the cluster 100 has a large numberof assets.

Referring now to FIGS. 6 a and 6 b, the function of clusters withreference to a specific geographical location, according to anembodiment, is now discussed in more detail. Depicted in FIG. 6 a is acluster 600 with a bounding area 602 encompassing much of Eureka, Calif.As is apparent, the cluster 600 comprises 34 assets. When a user zoomsin on the cluster 600, as depicted in FIG. 6 b, cluster 600 is replacedwith four new clusters 604-610. Collectively, the new clusters 604-610comprise the same assets as cluster 600. New clusters 604-610, however,are more accurately positioned on the map to reflect the location oftheir underlying assets. Thus, as depicted in FIG. 6 b, a user can seethere are 3 assets in Fortuna, and 2 assets in McKinleyville, with theremaining assets located near Eureka and Fields Landing. If a user zoomsin to the point where it is useful to display individual assets, acluster is replaced with the accurate real-time location of each assetwithin the cluster. Alternatively, in some embodiments, a user can clickone of the clusters 604-610 to display the location of each of itsassets. If a user zooms out of a specific area, such as zooming out fromFIG. 6 b to FIG. 6 a, or from FIG. 6 a to FIG. 2, the clusters arecombined and become more general and less tied to a specific spatiallocation. Thus, the rendering and re-rending of maps and theirrespective clusters is hierarchical.

In some embodiments, the structure of assets and clusters can be thoughtof as follows:

(a) Asset CLASS STATUS ATTRIBUTES (b) Point COMPRISING: Assets LOCATION(longitude, latitude) (c) Zone COMPRISING: Points (d) Area COMPRISING:Zones (e) Regions COMPRISING: Areasand so on, through higher levels of clusters.

The manner in which the system clusters assets (or clusters) and splitsclusters as discussed above is now described in more detail, accordingto an embodiment. Referring to FIG. 7, depicted is a flow chart 700describing in detail the creation of a cluster. First, at step 702, thelatitudinal and longitudinal coordinates of the item to be clustered(either an asset or a cluster) are determined, and, using standardreprojection techniques, are converted to x and y pixel coordinatesbased on the user's display. Next, in step 704, a box (or other shape)is created around the x and y coordinates indicative of the size of theitem's icon size. For instance, in some embodiments, the icon a usersees for a cluster is 30 pixels by 30 pixels. Thus, in step 704, a 30×30pixel box is placed around the determined x and y coordinates for suchcluster. In step 706, an R-Tree, a well-known data structure familiar tothose with skill in the art, is queried with the box to determinewhether the box is already in the system. As shown in outcome 708, ifthe box is already part of an existing cluster in the system, the boxand its item is added to that cluster. Otherwise, as shown in outcome710, the box and its item are added as a new cluster. The forgoingprocess repeats for each item to be clustered. While the embodiments aredescribed herein with reference to an R-Tree, those of ordinary skill inthe art will recognize other types of trees and data structures may beused to implement other embodiments, and that the type and configurationof such data structures will depend, for example, on the specificapplication and functionality desired.

Referring now to FIGS. 8 a-d, depicted is a graphical example of thesteps carried out in the flow chart 700, according to an embodiment. Asshown in FIG. 8 a, and as described with reference to step 702, assets100 a-100 c with real world latitudes and longitudes are reprojected tox and y pixel coordinates based on a user's display 800. In FIG. 5 b,and in accordance with step 704, a box or other icon shape 802 a-c iscreated around each asset 100 a-c. In accordance with steps 706-710,each box 802 a-c is then used to query the R-Tree. The R-Tree is firstqueried with box 802 a. Since the R-Tree is empty, the R-Tree will notreturn a result, and box 802 a is added to the R-Tree as a new cluster804 a, as shown in FIG. 8 c. The R-Tree is next queried with box 802 b.As depicted in FIG. 8 b, since there is no overlap between box 802 a(which is already in the R-Tree) and box 802 b, the R-Tree again willnot return a result, and box 802 b is added to the R-Tree as a newcluster 804 b. The R-Tree is next queried with box 802 c. As shown inFIG. 5 b, there is overlap between box 802 b and 802 c. The R-Tree willtherefore return cluster 804 b as a result, and box 802 c is added thatcluster, as shown in FIG. 8 c. As shown in FIG. 8 c, cluster 804 bexpands to comprise boxes 802 b and 802 c. As a result of the foregoingsteps, the two clusters 804 a-b are depicted to the user, with theunderlying boxes and asset information are no longer displayed, as shownin FIG. 8 d.

In some embodiments, the method described with reference to FIGS. 7 and8 may produce clusters with too many items (either too many assets orother clusters). In order to make the clusters that have been createdmore usable, the clusters are thereafter split into smaller, more usableclusters. By splitting clusters, the information contained in theclusters is, in some embodiments, more evenly distributed across theuser's screen view.

In some embodiments, clusters are split if they are either horizontallyor vertically larger than a defined variable M (cluster maximum size).This variable, for example, is based on the resolution of the user'sscreen and on the size of typically icons used with the system. On astandard screen using icons of 32 pixels wide, M is, in someembodiments, set at 100 pixels. Those of ordinary skill in the art willrecognize that other values for M may be optimal, depending on theuser's screen's resolution and size, the size of the icons used inconnection with the system, or other variables.

If a cluster is to be split, then the cluster is split both horizontallyand vertically. Vertical and horizontal maximum pixel values for the newclusters are, in some embodiments, based on the following formulas:Y _(split) =M−2(ICON_(width))X _(split) =Y _(split)/2+Y _(split)Where Y_(split) is the maximum horizontal pixel value and X_(split) isthe maximum vertical pixel value, and ICON_(width) is the width, inpixels, of the asset or cluster icons. The foregoing formulas take intoaccount the dimensions of the icons to ensure clusters will not overlapon a user's screen. Based on the foregoing, where M is set to 100 pixelsand the icons are 32 pixels, each new cluster must be less than 54pixels wide, and must be less than 36 pixels tall.

Referring now to FIG. 9, depicted is a process for splitting a cluster900 according to an embodiment. For example, given a cluster with awidth of 132 pixels wide, the cluster is first split horizontally instep 902 into the minimum number of sections for which each section isless than X_(split), (54 pixels) wide. The cluster is therefore firstdivided into three sections, each with a width of 44 pixels. As shown instep 904, each section obtained in step 902 is then split horizontallyinto sections less than Y_(split) (36 pixels) tall. As a result, theoriginal cluster 900 is, divided into 12 slots 906 a-l, each withdimensions of 44 pixels by 30 pixels. In step 906, the new clusters arecreated. In some embodiments, the even numbered slots are retained (i.e.slots 908 a, 908 c, 908 e, 908 g, 908 i, and 908 k), while the oddnumbered slots are discarded. Any items in the odd numbered slots aremoved one slot up (i.e. items in slot 908 b are moved to slot 908 a, andso on). The retained slots become the new clusters.

Referring now to FIG. 10, depicted is an example of items being movedfrom odd slots 908 b and 908 d to even slots 908 a and 908 c, accordingto an embodiment. As depicted, the odd slots 908 b and 908 d are dividedin half horizontally, as shown with the dotted lines 1002 a and 1002 b.Items in the odd numbered slots 908 b and 908 d that are above theirrespective dotted lines 1002 a and 1002 b are moved to the even numberedslots above, while items in the odd numbered slots 908 b and 908 d thatare below their respective dotted lines 1002 a and 1002 b are moved tothe even numbered slots below. Where, as in the case of slot 908 d,there is no even numbered slot below the odd numbered slot, all of theitems in the odd numbered slot are moved to the even numbered slotabove. Thus, as depicted, all of the items in odd slot 908 d are movedto even slot 908 c.

Referring now to FIG. 11, depicted is a sample cluster 1100, withreference to a display screen 1102, that is to be split, according to anembodiment. As is apparent, cluster 1100 comprises 20 items (eitherassets or smaller clusters). As shown in FIG. 12, the cluster's items(indicated by Xs in the screen 1102) are located near both verticaledges of the screen 1102. As shown in FIG. 13, cluster 1100 (not shown)is split according to the embodiments discussed above with reference toFIGS. 9 and 10. The items in odd slots (1302 b, 1302 d, and 1302 f) aremoved to the even slots 1302 a, 1302 c, and 1302 e. As shown in FIG. 14,three resulting new clusters 1402 a-c are created. The final result, asshown in FIG. 15, are new clusters 1402 a-c shown to the user in placeof the old cluster, while the underlying items in the clusters 1402 a-care hidden from view.

Referring now to FIG. 16, depicted is an overall system diagram 1600 ofcomponents and devices used in connection with the forgoing systems andmethods, according to an embodiment. Each asset (not shown) comprises acommunication device 1602 a-c. For instance, a vehicle may have a smalltransceiver device installed in its cabin, or an individual may carry asmartphone or similar device with location determination capabilities.Such devices 1602 a-c may utilize, for example, GPS, inertial (gyro)systems, or cellular network based technologies, such as triangulation,to determine the latitude and longitude information for the asset.

Location, status, alarm, class, speed, and other types of pertinentinformation pertaining to a devices' asset may be provided by thedevices 1602 a-c to a central processing system 1604. In someembodiments, the devices 1602 a-c communicate such information in realtime. In other embodiments, such information is transmittedperiodically, at random intervals, or on an alarm condition. Suchtransmissions are made, in some embodiments, via a wireless or satellitebased communication system and/or over the internet or similar wide areanetwork 1606, to the central processing system 1604.

The central processing system 1604, in some embodiments, comprises oneor more web servers 1608 in communication with one or more databases1610. The web servers 1608 may, in some embodiments, have highperformance or computer clustering capabilities. The central processingsystem 1604, operates, in some embodiments, as follows:

-   -   Information received by the devices 1602 a-c is stored in the        databases 1610.    -   The web servers 1608 receive update requests from a client 1612        a-c via the Internet or similar wide area network 1614    -   The central processing system 1604 accesses pertinent        information from the database 1610 and performs the clustering        and map delivery processes discussed above in response to        received requests, and    -   The web servers 1604 transmit the resulting data to the client        1612 a-c via the network 1614.

In some embodiments, the central processing system 1604 utilizesdistributed or cloud computing capabilities and/or technology. In someembodiments, the central processing system 1604 shares computingresponsibilities with a requesting client 1612 a-c. In otherembodiments, the central processing system 1604 is responsible for allor substantially all of the computing responsibilities. A benefit of theforegoing arrangements, in some embodiments, is that the amount of datathat needs to be transferred from the web server 1608 to the client 1612a-c is very small. In some embodiments, little, if any, of theunderlying asset information is transferred to clients 1612 a-c. Inthese embodiments, merely the high-level cluster information showing theaggregated asset information (e.g. charts, numerical value, and/orbounding area information, such as that discussed with reference toFIG. 1) is transferred to the clients 1612 a-c. These embodiments makeit is possible to deal with a practically unlimited number of items,even when having a limited network capability and/or a hardware client1612 a-c with limited processing ability. Those of ordinary skill in theart will recognize that networks 1606 and 1614 may be the same ordifferent networks. In some embodiments, both such networks will be theInternet. In other embodiments, networks 1606 and 1614 may compriseprivate and/or public networks.

A client 1612 a-c may be, for example, a personal computer or a smartphone. In other embodiments, a client 1612 a-c may itself be a server orcentral computer which is configured to transmit the informationreceived by the central processing system 1640 to end-user clients (notshown). In some embodiments, the clients 1612 a-c comprise a graphicaluser interface displayed in a browser window of a browser application.Such an arrangement permits an end user of a client 1612 a-c to easilyview the map, geographic information, cluster information, and theunderlying asset data provided by the central processing system 1604.Thus, the system and its smart zooming capabilities can be utilized byany user with a client computing device capable of running a web browserand accessing a wide area network, such as the Internet.

In some embodiments, the graphical user interface is implemented usingHTML, JavaScript, CSS, JSON, and/or XML programming. Such programmingmay be AJAX compliant. In some embodiments, a dynamic HTML page or XMLcontent is created by the central processing system 1604 in response toa request by a client 1612 a-c. Such interaction, in some embodiments,proceeds by the user of a client 1612 a-c making XML API calls and/orJava Applet calls to the web server 1608 of the central processingsystem 1604. Using the techniques previously discussed, the centralprocessing system 1604 generates clusters, asset information, and orother information requested by the user, and provides such content,along with the corresponding map data, to the client 1612 a-c. Thegraphical user interface of the browser window thereafter displays suchcontent for viewing by a user.

The smart zoom system and its graphical user interface can beimplemented using technologies other than those described. For instance,in one embodiment, the graphical user interface is implemented as anAdobe Flash object. In some embodiments, where the graphical userinterface is implemented using Flash, the graphical user interface isembedded in an HTML page and executed by a Flash compatible plug-in forthe browser application. The Flash object stores data files and/orcommunicates with the central processing system receive updated map,cluster, and asset information. In other embodiments, technologies suchas Java, Java Applets, Synchronized Multimedia Integration Language(SMIL), or Microsoft Silverlight are used to implement the graphicaluser interface and to interact with the central processing system 1604.In other embodiments, the graphical user interface is executed by astandalone player external from the browser application or otherspecialized program used to access the central processing system 1604.

As is apparent, the described smart zoom clustering methods and systemsallow diverse user tools and interfaces to permit any number of end userclients to visualize hundreds or thousands of assets and their real timelocation and status. By utilizing the forgoing smart zoom systems andmethods, a vehicle fleet or other asset manager can quickly and easilydetermine the status of hundred of assets, identify problems with theassets, redeploy assets as needed, and make other managerial decisionsin a manner not possible using other methods and systems.

A further embodiment is computer readable code or program instructionson one or more computer readable mediums capable of carrying outprocesses discussed above. A computer readable medium is any datastorage device that is capable of storing data, or capable of permittingstored data to be read by a computer system. Examples include hard diskdrives (HDDs), flash memory cards, such as CF cards, SD cards, MS cards,and xD cards, network attached storage (NAS), read-only memory (ROM),random-access memory (RAM), CD-ROMs, CD-Rs, CD-RWs, DVDs, DVD-Rs,DVD-RWs, holographic storage mediums, magnetic tapes and other opticaland non-optical data storage devices. The computer readable medium canalso be in distributed fashion over multiple computer systems or deviceswhich are coupled or otherwise networked together and capable ofpresenting a single view to a user of the medium.

Yet another embodiment is a computer system or similar device configuredto access computer readable code or program instructions from a computerreadable medium and to execute program instructions using one or moreCPUs to carry out embodiments as described. Such computer system can be,but is not limited to, a typical personal computer, microcomputers, ahandheld device such as a cell phone, PDA, BlackBerry, or a moreadvanced system such as a computer cluster, distributed computer system,server accessed over wired or wireless devices, a mainframe, or asupercomputer. In another embodiment, the server(s) of the system arealso stored in and accessed from the computer readable medium. In otherembodiments, they are implemented using hardware.

In some embodiments, some or all of the content stored in the computerreadable medium is transmitted via a similar network. In otherembodiments, the central processing system generates signals orinstructions based on the results of the program instructions and/or thecontents of the computer readable medium.

In other embodiments, the foregoing systems and methods are applicableto environments other than those in two dimensions. For instance, threedimensional clusters, maps, bounding areas, and assets can beimplemented using the same techniques and methods discussed above.

The invention has been described herein using specific embodiments forthe purposes of illustration only. It will be readily apparent to one ofordinary skill in the art, however, that the principles of the inventioncan be embodied in other ways. Therefore, the invention should not beregarded as being limited in scope to the specific embodiments disclosedherein.

The invention claimed is:
 1. A method for displaying informationpertaining to a plurality of geographically related assets, the methodcomprising: receiving information pertaining to a plurality of assets,wherein the assets are vehicles; selecting the assets from the pluralityof assets that are geographically related, wherein the assets aregeographically related if the physical location of the assets are withina geographic area defined by a virtual bounding area; forming a clustercomprising the selected assets; providing a graphical user interfacecomprising a geographic map and the cluster, wherein the cluster isoverlaid on the geographic map in the geographic area defined by thebounding area; wherein the cluster displays on the graphical userinterface at least one item of information pertaining to the selectedassets; and splitting a cluster of assets, wherein each asset has pixelcoordinates based on its geospatial location and in reference to avirtual area representing an end user's display; identifying thecoordinates of each asset; dividing the virtual area into slots;grouping the assets into the slots based on each assets' pixelcoordinates; and generating new clusters, wherein each new clustercomprises at least one asset and comprises every asset which was groupedinto the same slot.
 2. The method of claim 1, wherein the informationpertaining to the plurality of assets is updated in real time.
 3. Themethod of claim 1, wherein the at least one item of information is achart displaying status information for the selected assets.
 4. Themethod of claim 1, wherein the at least one item of information is achart displaying the class information for the selected assets.
 5. Themethod of claim 1, where the at least one item of information is anumerical indication of the number of selected assets.
 6. The method ofclaim 1, wherein the graphical user interface displays the virtualbounding area.
 7. The method of claim 1, further comprising adding thecluster to a new cluster if a user of the graphical user interface zoomsout from the geographic map.
 8. The method of claim 1, furthercomprising splitting the cluster into a plurality of clusters if a userof the graphical user interface zooms in on the geographic map.
 9. Amethod for displaying information pertaining to a plurality ofgeographically related assets, the method comprising: receivinginformation pertaining to a plurality of assets, wherein the assets arevehicles; selecting the assets from the plurality of assets that aregeographically related, wherein the assets are geographically related ifthe physical location of the assets are within a geographic area definedby a virtual bounding area; forming a cluster comprising the selectedassets; providing a graphical user interface comprising a geographic mapand the cluster, wherein the cluster is overlaid on the geographic mapin the geographic area defined by the bounding area; wherein the clusterdisplays on the graphical user interface at least one item ofinformation pertaining to the selected assets; and clustering assets,wherein each asset has pixel coordinates based on the asset's geospatiallocation and in reference to a virtual area representing an end user'sdisplay; determining an icon shape with specific pixel dimensions foruse in connection with each asset; querying a data structure with theicon shape for each asset; adding an asset as a new cluster in the datastructure if the area defined by the pixel dimensions of the asset'sicon shape, when centered over the asset's pixel coordinates, does notoverlap with the area covered by another cluster in the data structure;and adding an asset to an existing cluster in the data structure if thearea defined by the pixel dimensions of the asset's icon shape, whencentered over the asset's pixel coordinates, overlaps with the areacovered by the existing cluster.